/***************************************************************************
 * Copyright (C) 2005 Global Biodiversity Information Facility Secretariat.
 * All Rights Reserved.
 *
 * The contents of this file are subject to the Mozilla Public
 * License Version 1.1 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of
 * the License at http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS
 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * rights and limitations under the License.
 ***************************************************************************/
package org.gbif.wdpa.dao;

import java.util.List;
import java.util.Map;
import org.gbif.wdpa.model.*;

/**
 * DAO definition
 * @author jatorre
 */
public interface WDPADao { 
	
	/**
	 * @see org.gbif.wdpa.dao.jdbc.WDPA#getAreaDataProviders(int)
	 */
	public List<DataProvider> getAreaDataProviders(int areaId);
	
	/**
	 * @see org.gbif.wdpa.dao.jdbc.WDPA#getAreaTaxaStats(int)
	 */	
	public Map<String,Object> getAreaTaxaStats(int areaId);

	/**
	 * @see org.gbif.wdpa.dao.jdbc.WDPA#getTileTaxonomy(int)
	 */	
	public Map<String,Object> getTileTaxonomy(int x,int y, int zoom, int areaId);
	
	/**
	 * @see org.gbif.wdpa.dao.jdbc.WDPA#getAreaCellsByTileArea(int)
	 */	
	@SuppressWarnings("unchecked")
	public List getAreaCellsByTileArea(Integer tileX,Integer tileY, Integer zoom, Integer polygonId);
	
	/**
	 * @see org.gbif.wdpa.dao.jdbc.WDPA#getTileLimits(int)
	 */	
	@SuppressWarnings("unchecked")
	public List getTileLimits(Integer tileId, Integer polygonId);
	
	/**
	 * @see org.gbif.wdpa.dao.jdbc.WDPA#getAreasBasicData(int)
	 */	
	@SuppressWarnings("unchecked")
	public List getAreasBasicData(String isoCountry);
	
	/**
	 * @see org.gbif.wdpa.dao.jdbc.WDPA#getAreasByCoordinates(int)
	 */	
	@SuppressWarnings("unchecked")
	public List getAreasByCoordinates(float lat,float lng);
	
	/**
	 * @see org.gbif.wdpa.dao.jdbc.WDPA#getAreasByIds(int)
	 */	
	@SuppressWarnings("unchecked")
	public List getAreasByIds(Integer [] areaIds);
	
}
